Elastic StackのX-Packを試す(インストール編)
検証時のX-Packのバージョンはbeta1です。
GAリリース時は仕様が変わっている可能性もございますのでご注意ください。
こんにちは、藤本です。
Elastic Stackもベータバージョンまでリリースされました。これからはGAリリースに向けてバグフィックスが主なアップデートとなっていくことでしょう。
全6回で X-Pack をおさらいがてら機能を試しつつ、新機能を確認していきます。
今回は初回ということで、X-Pack の概要の確認と、インストール関連を試してみました。
X-Packを試すシリーズのその他のエントリは以下をご参照ください。
- Elastic StackのX-Packを試す(インストール編)
- Elastic StackのX-Packを試す(Security編)
- Elastic StackのX-Packを試す(Monitoring編)
- Elastic StackのX-Packを試す(Watcher編)
- Elastic StackのX-Packを試す(Reporting編)
- Elastic StackのX-Packを試す(Graph編)
X-Pack
Elastic Stack 5以前は有償プラグインとして、Marvel、Shield、Watcher、Graphを個別プロダクトとして提供していました。それぞれ個別にインストール、アップグレードが必要だったところをひとまとめに取り扱えるように1つにパッケージ化されたのが、X-Packです。またX-PackからReportingという機能も加わりました。
- Security(旧Shield)
- Elasticsearch/Kibanaのユーザー認証/認可
- 通信の暗号化
- 監査ログ
- Monitoring(旧Marvel)
- Elasticsearchクラスタの正常性、パフォーマンスモニタリング
- Kibanaの正常性、パフォーマンスモニタリング
- Alerting and Notification(旧Watcher)
- 柔軟な条件のインデックス監視
- Elasticsearchクラスタ監視
- 通知
- Graph
- データ間の(潜在的な)関連性の可視化
- Reporting(新機能)
- Kibanaダッシュボードのスナップショット(PDF化)
インストール
事前準備
X-Packを利用する場合、Elasticsearchの5系をインストールしておいてください。Monitoring、Graph、Reportingに関してはKibanaのプラグイン機能となりますので、Kibana 5系もインストールしておいてください。
今回試した環境は以下となります。
- OS : CentOS 7(7.2.1511)
- Elasticsearch : 5.0.0-beta1
- Kibana : 5.0.0-beta1
ElasticsearchへのX-Packインストール
elasticsearch-plugin
コマンドでX-Packプラグインをインストールします。
RPMでインストールしている場合、/usr/share/elasticsearch/bin/elasticsearch-plugin
になります。
# /usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack -> Downloading x-pack from elastic [=================================================] 100% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: plugin requires additional permissions @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * java.lang.RuntimePermission accessClassInPackage.com.sun.activation.registries * java.lang.RuntimePermission getClassLoader * java.lang.RuntimePermission setContextClassLoader * java.lang.RuntimePermission setFactory * java.security.SecurityPermission createPolicy.JavaPolicy * java.security.SecurityPermission getPolicy * java.security.SecurityPermission putProviderProperty.BC * java.security.SecurityPermission setPolicy * java.util.PropertyPermission * read,write * java.util.PropertyPermission sun.nio.ch.bugLevel write * javax.net.ssl.SSLPermission setHostnameVerifier See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y -> Installed x-pack
プラグインインストール後は再起動が必要です。
# systemctl restart elasticsearch
X-Packをインストール後はSecurityが有効になっています。Elasticsearchへのリクエストはベーシック認証が必須となります。
# curl 'localhost:9200?pretty' { "error" : { "root_cause" : [ { "type" : "security_exception", "reason" : "missing authentication token for REST request [/?pretty]", "header" : { "WWW-Authenticate" : "Basic realm=\"security\" charset=\"UTF-8\"" } } ], "type" : "security_exception", "reason" : "missing authentication token for REST request [/?pretty]", "header" : { "WWW-Authenticate" : "Basic realm=\"security\" charset=\"UTF-8\"" } }, "status" : 401 }
初期ユーザーはユーザー名がelastic
、パスワードがchangeme
です。
# curl -u elastic 'localhost:9200?pretty' Enter host password for user 'elastic': { "name" : "5-mmWGx", "cluster_name" : "elasticsearch", "cluster_uuid" : "8OQKs8fiSJSMfoFebG06uA", "version" : { "number" : "5.0.0-beta1", "build_hash" : "7eb6260", "build_date" : "2016-09-20T23:10:37.942Z", "build_snapshot" : false, "lucene_version" : "6.2.0" }, "tagline" : "You Know, for Search" }
ベーシック認証でアクセスできました。
Kibanaへのインストール
kibana-plugin
コマンドでX-Packプラグインをインストールします。
RPMでインストールしている場合、/usr/share/kibana/bin/kibana-plugin
になります。
# /usr/share/kibana/bin/kibana-plugin install x-pack Attempting to transfer from x-pack Attempting to transfer from https://artifacts.elastic.co/downloads/kibana-plugins/x-pack/x-pack-5.0.0-beta1.zip Transferring 56941922 bytes.................... Transfer complete Retrieving metadata from plugin archive Extracting plugin archive Extraction complete Optimizing and caching browser bundles... Plugin installation complete
プラグインインストール後は再起動が必要です。
# systemctl restart kibana
KibanaもSecurityが有効になっています。Kibanaにアクセスするとログイン画面が表示されます。
Webブラウザを起動し、http://<hostname or ipaddress>:5601/
へアクセスします。
Elasticsearchと同じくelastic
ユーザーでログインします。
標準のKibanaと比べて、Graph
、Monitoring
、Reporting
、ユーザー情報やLogoutといったSecurity
のUIが追加されています。
X-Packの有効化・無効化
X-Packをインストールするとデフォルトでは全ての機能が有効化されます。Elasticsearch、KibanaではX-Packの機能単位で有効/無効を切り替えることができます。例えば、検証時点でSecurity
によるベーシック認証が煩わしいという時はそれぞれの設定ファイルで無効設定することにより、モジュールが読み込まれなくなります。
X-Pack無効化
今回はSecurity
機能を無効化します。elasticsearch.yml
に無効化設定を追記します。
ドキュメントではelasticsearch.yml
、kibana.yml
を修正と書いていますが、elasticsearch.yml
だけ記述すれば、Kibanaでも無効化されるようです。
# vi /etc/elasticsearch/elasticsearch.yml ### add following line xpack.security.enabled: false
xpack.security.enabled
のsecurity
をmonitoring
、graph
、watcher
、reporting
にすることでそれぞれの機能を無効化設定することができます。
設定を追記したら、Elasticsearchを再起動します。
# systemctl restart elasticsearch
ベーシック認証なしでElasticsearchへAPIを発行します。
# curl 'localhost:9200?pretty' { "name" : "5-mmWGx", "cluster_name" : "elasticsearch", "cluster_uuid" : "8OQKs8fiSJSMfoFebG06uA", "version" : { "number" : "5.0.0-beta1", "build_hash" : "7eb6260", "build_date" : "2016-09-20T23:10:37.942Z", "build_snapshot" : false, "lucene_version" : "6.2.0" }, "tagline" : "You Know, for Search" }
認証なしでAPIが返ってきました。
次にKibanaへアクセスしてみます。
左ペインのメニューからユーザー情報が削除され、管理画面のUser、Roleといったリンクもなくなりました。あれ?Graphも消えてる?
まとめ
いかがでしたでしょうか?
X-Packにより有償プラグインを簡単に利用開始できるようになりました。次回からはX-Packの各機能の始め方と新機能を触ってみたいと思います。